<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
//   Object.create()可以帮我们生成一个对象，通过传参，可以将生成的对象的原型指向第一个参数
// 在阅读vue等框架源码时会看到作者在创建一个空对象时，常常使用Object.create(null)，这样做的目的是防止Object构造函数的原型被修改时对新建的对象产生影响
    const o1 = Object.create(null,{
        name:{
            value:'kobe',
            writable:true,
            enumerable:true,
            configurable:true
        }
    })
let value = 18
    const o2 = Object.create(null,{
        age:{
            get:function proxyGetter(){
                console.log('获取属性了')
                return value
            },
            set:function proxySetter(val){
                value = val
            }
        }
    })
    console.log(o1)
    o1.name = '张三'
    console.log(o1)


console.log(o2)
o2.age = 30
console.log(o2)
</script>
</body>
</html>